from math import ceil
from core.basic.skill import 技能
from core.basic.character import Character
from core.basic.skill import 主动技能, 被动技能


# 仅录入大成功/成功/失败


class 技能0(主动技能):
    # 大成功
    名称 = "改良魔法星弹"
    所在等级 = 15
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 5.4
    MP = [35, 350]
    无色消耗 = 0
    data0 = [0, 1630, 1794, 1968, 2131, 2303, 2462, 2641, 2801, 2970, 3139, 3309, 3479, 3644, 3819, 3982, 4152, 4311, 4489, 4652, 4821, 4990, 5160, 5329, 5495, 5667, 5832, 6002, 6164, 6341, 6501, 6672, 6842, 7011, 7179, 7345, 7518, 7685, 7852, 8014, 8192, 8351, 8521, 8691, 8860, 9028, 9194, 9369, 9533, 9702, 9872, 10042, 10202, 10372, 10542, 10710, 10879, 11044, 11219, 11384, 11553, 11721, 11891, 12054, 12221, 12393, 12561, 12729, 12895, 13068, 13234]
    hit0 = 0
    data1 = [0, 1794, 1976, 2163, 2345, 2527, 2712, 2907, 3084, 3271, 3453, 3644, 3825, 4009, 4205, 4377, 4568, 4745, 4938, 5116, 5303, 5495, 5678, 5863, 6042, 6237, 6418, 6600, 6783, 6971, 7153, 7337, 7528, 7712, 7895, 8079, 8270, 8453, 8638, 8817, 9012, 9186, 9379, 9561, 9746, 9937, 10111, 10307, 10485, 10673, 10863, 11044, 11228, 11411, 11595, 11778, 11970, 12153, 12340, 12522, 12706, 12895, 13082, 13259, 13446, 13628, 13819, 14003, 14185, 14380, 14555]
    hit1 = 0
    data2 = [0, 1794, 1976, 2163, 2345, 2527, 2712, 2907, 3084, 3271, 3453, 3644, 3825, 4009, 4205, 4377, 4568, 4745, 4938, 5116, 5303, 5495, 5678, 5863, 6042, 6237, 6418, 6600, 6783, 6971, 7153, 7337, 7528, 7712, 7895, 8079, 8270, 8453, 8638, 8817, 9012, 9186, 9379, 9561, 9746, 9937, 10111, 10307, 10485, 10673, 10863, 11044, 11228, 11411, 11595, 11778, 11970, 12153, 12340, 12522, 12706, 12895, 13082, 13259, 13446, 13628, 13819, 14003, 14185, 14380, 14555]
    hit2 = 2
    data3 = [0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 15, 15, 15]
    hit3 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能1(主动技能):
    # 大成功
    名称 = "改良舒露露"
    所在等级 = 15
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 16
    MP = [35, 350]
    无色消耗 = 0
    data0 = [0, 4542, 5002, 5462, 5924, 6385, 6847, 7307, 7769, 8228, 8689, 9150, 9610, 10069, 10532, 10992, 11455, 11913, 12374, 12835, 13295, 13758, 14217, 14681, 15140, 15600, 16061, 16523, 16986, 17445, 17905, 18369, 18827, 19288, 19749, 20208, 20670, 21129, 21592, 22051, 22513, 22973, 23433, 23896, 24357, 24818, 25278, 25740, 26200, 26662, 27123, 27583, 28046, 28507, 28967, 29427, 29884, 30344, 30807, 31268, 31731, 32189, 32652, 33112, 33573, 34033, 34494, 34956, 35417, 35877, 36339]
    hit0 = 0
    data1 = [0, 3405, 4138, 4875, 5608, 6349, 7082, 7820, 8549, 9283, 10007, 10751, 11487, 12218, 12952, 13678, 14408, 15146, 15874, 16609, 17345, 18077, 18811, 19548, 20278, 21011, 21739, 22468, 23207, 23933, 24669, 25411, 26141, 26868, 27598, 28334, 29073, 29800, 30539, 31258, 32001, 32741, 33466, 34201, 34930, 35660, 36397, 37124, 37857, 38599, 39324, 40062, 40798, 41528, 42262, 42990, 43721, 44456, 45196, 45923, 46657, 47393, 48123, 48853, 49587, 50325, 51059, 51789, 52520, 53255, 53984]
    hit1 = 0
    data2 = [0, 9084, 10006, 10927, 11849, 12769, 13692, 14614, 15535, 16458, 17380, 18298, 19223, 20143, 21066, 21988, 22907, 23829, 24751, 25674, 26596, 27517, 28437, 29359, 30280, 31204, 32125, 33046, 33969, 34890, 35814, 36735, 37657, 38576, 39496, 40418, 41340, 42262, 43182, 44106, 45028, 45951, 46875, 47796, 48711, 49636, 50558, 51479, 52401, 53321, 54245, 55167, 56087, 57012, 57933, 58851, 59772, 60694, 61618, 62540, 63461, 64383, 65304, 66227, 67149, 68069, 68990, 69912, 70834, 71756, 72678]
    hit2 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能2(被动技能):
    名称 = '亲和法米利尔'
    所在等级 = 15
    等级上限 = 15
    基础等级 = 5

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1 + 0.02 * self.等级, 5)


class 技能3(主动技能):
    # 附加伤害不含平x本身
    名称 = "魔幻粉末"
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 3
    等级精通 = 60
    # buff冷却，平x本身无冷却
    CD = 5
    MP = [35, 259]
    无色消耗 = 0
    data0 = [0, 200, 228, 260, 292, 326, 353, 385, 418, 447, 478, 513, 544, 574, 608, 640, 666, 700, 732, 765, 794, 826, 859, 886, 921, 950, 981, 1011, 1045, 1077, 1107, 1139, 1171, 1200, 1233, 1263, 1293, 1326, 1356, 1391, 1424, 1453, 1484, 1515, 1546, 1579, 1609, 1641, 1671, 1703, 1734, 1764, 1797, 1829, 1860, 1891, 1923, 1953, 1986, 2016, 2047, 2078, 2109, 2142, 2171, 2204, 2232, 2269, 2299, 2329, None]
    hit0 = 1
    data1 = [0, 251, 288, 327, 367, 404, 444, 481, 526, 564, 600, 640, 679, 718, 756, 795, 840, 875, 912, 954, 993, 1032, 1072, 1110, 1148, 1189, 1226, 1269, 1306, 1345, 1382, 1426, 1463, 1501, 1542, 1580, 1619, 1658, 1699, 1738, 1777, 1814, 1856, 1892, 1932, 1973, 2012, 2048, 2091, 2131, 2168, 2209, 2245, 2285, 2325, 2364, 2401, 2443, 2482, 2518, 2562, 2599, 2638, 2677, 2717, 2755, 2795, 2831, 2875, 2913, None]
    hit1 = 1
    data2 = [0, 350, 404, 460, 513, 564, 621, 675, 735, 790, 844, 897, 950, 1003, 1060, 1114, 1174, 1225, 1278, 1337, 1391, 1443, 1501, 1554, 1604, 1663, 1718, 1777, 1829, 1882, 1936, 1993, 2047, 2102, 2157, 2212, 2270, 2324, 2377, 2433, 2489, 2541, 2597, 2652, 2705, 2763, 2817, 2870, 2928, 2982, 3036, 3090, 3144, 3197, 3256, 3308, 3362, 3421, 3474, 3528, 3584, 3638, 3691, 3750, 3801, 3856, 3915, 3968, 4023, 4076, None]
    hit2 = 1
    中毒data0 = [0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 20, 20, 20, 20, 21, 21, None]
    中毒hit0 = 3
    CD = 5.0  #

    形态 = ["中毒", "冰冻"]

    def 形态变更(self, 形态, char):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "中毒":
            self.中毒hit0 = 3
        if 形态 == "冰冻":
            self.中毒hit0 = 0


class 技能4(主动技能):
    名称 = "暗影斗篷"
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 7
    MP = [35, 350]
    无色消耗 = 0
    data0 = [0, 6122, 6742, 7363, 7982, 8604, 9227, 9847, 10471, 11090, 11712, 12332, 12953, 13573, 14196, 14814, 15438, 16058, 16680, 17299, 17921, 18541, 19163, 19782, 20405, 21025, 21645, 22268, 22887, 23510, 24131, 24752, 25375, 25993, 26613, 27236, 27856, 28477, 29096, 29719, 30342, 30961, 31585, 32204, 32826, 33446, 34068, 34687, 35309, 35927, 36551, 37171, 37793, 38417, 39035, 39656, 40279, 40900, 41520, 42141, 42761, 43384, 44001, 44627, 45246, 45866, 46489, 47109, 47730, 48353, 48973]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能5(主动技能):
    名称 = '魔法秀'
    所在等级 = 20
    等级上限 = 15
    基础等级 = 10
    是否有伤害 = 0
    冷却关联技能 = ['改良魔法星弹', '改良舒露露', '熔岩药瓶', '魔道酸雨云', '旋转扫把', '电鳗碰撞机',
              '暴炎加热炉', '冰霜钻孔车', '反重力装置', '光电兔', '雪人刨冰', '糖果大作战捣蛋杰克']
    冷却类型 = 1

    魔法秀数值 = [0, 22, 43, 65, 86, 108, 130, 151, 173, 194, 216,
             238, 259, 281, 302, 324, 346, 367, 389, 410, 432]

    def CD缩减倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1 - 0.001*self.魔法秀数值[self.等级], 3)


class 技能6(主动技能):
    名称 = "变异苍蝇拍"
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 6.4
    MP = [30, 105]
    无色消耗 = 0
    data0 = [0, 8135, 8957, 9786, 10610, 11436, 12262, 13087, 13910, 14737, 15563, 16390, 17213, 18039, 18864, 19692, 20513, 21336, 22162, 22990, 23817, 24640, 25467, 26291, 27117, 27943, 28770, 29593, 30420, 31244, 32069, 32894, 33720, 34545, 35372, 36197, 37021, 37846, 38671, 39497, 40321, 41150, 41972, 42798, 43625, 44450, 45273, 46100, 46926, 47752, 48579, 49402, 50226, 51053, 51878, 52700, 53529, 54351, 55178, 56004, 56832, 57653, 58480, 59306, 60134, 60955, 61781, 62606, 63432, 64256, 65083]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能7(主动技能):
    # 大成功
    名称 = "魔道酸雨云"
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 3
    等级精通 = 60
    CD = 20
    MP = [200, 1960]
    无色消耗 = 0
    data0 = [0, 1270, 1472, 1672, 1878, 2081, 2280, 2485, 2687, 2889, 3093, 3291, 3498, 3701, 3904, 4107, 4308, 4510, 4713, 4915, 5118, 5318, 5521, 5726, 5932, 6128, 6334, 6536, 6737, 6943, 7142, 7347, 7551, 7752, 7955, 8155, 8358, 8562, 8767, 8967, 9169, 9370, 9578, 9780, 9979, 10182, 10382, 10586, 10788, 10989, 11194, 11401, 11601, 11803, 12005, 12210, 12412, 12613, 12816, 13017, 13219, 13426, 13628, 13830, 14031, 14232, 14440, 14638, 14838, 15043, 15250]
    hit0 = 6
    data1 = [0, 136, 160, 185, 206, 224, 251, 273, 294, 316, 338, 361, 384, 403, 428, 451, 472, 492, 515, 536, 560, 582, 602, 630, 647, 671, 693, 715, 735, 759, 782, 806, 827, 847, 872, 892, 913, 937, 959, 981, 1006, 1026, 1048, 1071, 1091, 1114, 1136, 1159, 1181, 1205, 1225, 1248, 1269, 1290, 1314, 1335, 1355, 1380, 1404, 1424, 1447, 1467, 1493, 1512, 1535, 1558, 1582, 1600, 1625, 1646, 1667]
    hit1 = 0
    data2 = [0, 209, 241, 274, 308, 340, 376, 409, 441, 472, 508, 542, 573, 608, 640, 672, 707, 740, 773, 808, 841, 873, 907, 938, 972, 1006, 1040, 1072, 1106, 1137, 1172, 1206, 1239, 1271, 1307, 1337, 1370, 1406, 1437, 1470, 1504, 1536, 1569, 1604, 1638, 1672, 1703, 1740, 1768, 1804, 1837, 1871, 1902, 1935, 1972, 2004, 2038, 2069, 2101, 2135, 2171, 2203, 2238, 2272, 2302, 2334, 2368, 2405, 2437, 2469, 2501]
    hit2 = 0
    data3 = [0, 280, 324, 366, 413, 455, 498, 544, 588, 632, 676, 723, 766, 810, 855, 901, 945, 989, 1034, 1078, 1121, 1164, 1211, 1253, 1298, 1343, 1390, 1430, 1477, 1520, 1565, 1609, 1657, 1699, 1744, 1787, 1831, 1874, 1920, 1966, 2009, 2053, 2099, 2145, 2188, 2231, 2278, 2319, 2364, 2410, 2451, 2499, 2541, 2585, 2628, 2675, 2720, 2765, 2807, 2853, 2899, 2942, 2986, 3032, 3075, 3119, 3162, 3210, 3249, 3298, 3339]
    hit3 = 36
    TP成长 = 0.1
    TP上限 = 7


class 技能8(主动技能):
    名称 = "熔岩药瓶"
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 3
    等级精通 = 60
    CD = 20
    MP = [200, 1960]
    无色消耗 = 0
    data0 = [0, 2639, 3059, 3481, 3901, 4321, 4743, 5163, 5583, 6005, 6426, 6846, 7267, 7688, 8109, 8530, 8951, 9371, 9792, 10213, 10632, 11054, 11474, 11894, 12316, 12736, 13157, 13578, 13999, 14419, 14841, 15262, 15682, 16104, 16524, 16944, 17366, 17786, 18208, 18628, 19048, 19470, 19890, 20311, 20733, 21153, 21573, 21993, 22415, 22835, 23255, 23677, 24097, 24517, 24939, 25359, 25780, 26201, 26622, 27042, 27464, 27885, 28305, 28727, 29147, 29569, 29989, 30409, 30831, 31251, 31671]
    hit0 = 0
    data1 = [0, 132, 153, 172, 195, 216, 236, 257, 279, 299, 320, 342, 363, 384, 404, 425, 446, 466, 488, 509, 530, 550, 570, 592, 616, 635, 655, 676, 697, 717, 738, 759, 782, 802, 824, 844, 867, 887, 907, 929, 949, 969, 991, 1013, 1033, 1054, 1075, 1096, 1116, 1138, 1159, 1179, 1201, 1221, 1243, 1263, 1284, 1306, 1327, 1348, 1368, 1389, 1412, 1430, 1454, 1475, 1495, 1516, 1537, 1558, 1577]
    hit1 = 0
    data2 = [0, 10113, 11725, 13339, 14953, 16564, 18179, 19790, 21402, 23014, 24625, 26239, 27852, 29463, 31081, 32692, 34304, 35916, 37527, 39140, 40754, 42367, 43981, 45593, 47201, 48813, 50427, 52042, 53655, 55268, 56879, 58490, 60104, 61717, 63328, 64942, 66556, 68170, 69782, 71392, 73005, 74617, 76230, 77842, 79456, 81071, 82682, 84292, 85905, 87517, 89132, 90742, 92359, 93970, 95582, 97194, 98805, 100420, 102032, 103648, 105259, 106870, 108483, 110093, 111708, 113320, 114931, 116546, 118158, 119772, 121382]
    hit2 = 1
    # 几率不稳定，此处按1次处理
    灼伤data0 = [0, 14, 17, 19, 21, 23, 26, 29, 30, 32, 34, 37, 39, 41, 43, 45, 49, 51, 53, 55, 56, 59, 61, 63, 66, 69, 71, 73, 75, 78, 80, 83, 85, 86, 89, 91, 93, 95, 97, 101, 103, 105, 107, 110, 112, 113, 115, 117, 121, 123, 125, 127, 130, 132, 134, 136, 139, 141, 143, 145, 147, 149, 152, 154, 157, 159, 162, 164, 166, 168, 169]
    灼伤hit0 = 1
    TP成长 = 0.1
    TP上限 = 7

    形态 = ["失败", "成功"]

    def 形态变更(self, 形态, char):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        self.power2 = 1
        if 形态 == "失败":
            self.hit0 = 0
            self.hit1 = 0
            self.hit2 = 1
            self.power2 = char.get_skill_by_name("魔道学助手").失败倍率() / char.get_skill_by_name("贤者之石").加成倍率('')
        if 形态 == "成功":
            self.hit0 = 6
            self.hit1 = 10
            self.hit2 = 0


class 技能9(主动技能):
    名称 = "旋转扫把"
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 12
    MP = [100, 840]
    无色消耗 = 0
    data0 = [0, 324, 357, 390, 422, 456, 489, 521, 555, 587, 620, 654, 686, 718, 754, 786, 818, 852, 884, 918, 951, 983, 1016, 1048, 1082, 1115, 1147, 1180, 1214, 1246, 1280, 1312, 1344, 1379, 1411, 1443, 1478, 1510, 1543, 1577, 1609, 1642, 1676, 1708, 1741, 1774, 1806, 1840, 1872, 1906, 1938, 1970, 2005, 2037, 2069, 2103, 2135, 2168, 2203, 2235, 2268, 2302, 2334, 2367, 2400, 2432, 2466, 2499, 2531, 2564, 2597]
    hit0 = 8
    data1 = [0, 1989, 2192, 2394, 2597, 2798, 2999, 3201, 3405, 3606, 3808, 4010, 4211, 4413, 4617, 4816, 5020, 5221, 5423, 5626, 5827, 6029, 6232, 6433, 6636, 6836, 7040, 7240, 7444, 7646, 7849, 8051, 8251, 8455, 8655, 8859, 9061, 9261, 9464, 9667, 9868, 10070, 10272, 10473, 10676, 10880, 11079, 11283, 11483, 11686, 11888, 12090, 12292, 12493, 12696, 12898, 13099, 13302, 13502, 13706, 13908, 14109, 14311, 14514, 14714, 14918, 15121, 15321, 15523, 15725, 15927]
    hit1 = 1
    data2 = [0, 894, 985, 1077, 1166, 1257, 1349, 1440, 1530, 1621, 1712, 1803, 1893, 1984, 2075, 2165, 2258, 2348, 2438, 2530, 2620, 2711, 2802, 2892, 2983, 3074, 3166, 3256, 3347, 3437, 3528, 3620, 3709, 3800, 3892, 3981, 4074, 4165, 4254, 4346, 4437, 4526, 4618, 4709, 4799, 4890, 4983, 5072, 5163, 5255, 5344, 5435, 5526, 5616, 5708, 5798, 5888, 5981, 6071, 6162, 6253, 6343, 6435, 6525, 6616, 6708, 6798, 6889, 6980, 7071, 7161]
    hit2 = 0
    data3 = [0, 8401, 9252, 10106, 10957, 11810, 12664, 13514, 14367, 15219, 16071, 16923, 17776, 18629, 19480, 20334, 21184, 22037, 22890, 23743, 24595, 25446, 26299, 27151, 28004, 28857, 29707, 30561, 31413, 32266, 33116, 33970, 34823, 35674, 36527, 37378, 38231, 39084, 39936, 40790, 41640, 42493, 43344, 44197, 45051, 45902, 46754, 47606, 48460, 49313, 50163, 51016, 51868, 52721, 53572, 54425, 55278, 56130, 56983, 57833, 58687, 59540, 60391, 61244, 62096, 62949, 63800, 64653, 65507, 66357, 67210]
    hit3 = 1
    TP成长 = 0.1
    TP上限 = 5

    形态 = ["地面", "空中"]

    def 形态变更(self, 形态, char):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "地面":
            self.hit0 = 8
            self.hit1 = 1
            self.hit2 = 0
            self.hit3 = 1
        if 形态 == "空中":
            self.hit0 = 0
            self.hit1 = 0
            self.hit2 = 3
            self.hit3 = 1


class 技能10(主动技能):
    # 大成功
    名称 = "电鳗碰撞机"
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 25
    MP = [360, 3024]
    无色消耗 = 2
    data0 = [0, 1150, 1268, 1385, 1502, 1620, 1737, 1852, 1970, 2085, 2202, 2321, 2437, 2555, 2670, 2787, 2903, 3022, 3137, 3255, 3373, 3488, 3606, 3720, 3841, 3956, 4073, 4190, 4307, 4422, 4541, 4658, 4775, 4891, 5009, 5125, 5242, 5359, 5477, 5594, 5708, 5828, 5942, 6061, 6176, 6295, 6409, 6528, 6643, 6761, 6878, 6995, 7113, 7229, 7345, 7463, 7581, 7696, 7814, 7930, 8048, 8163, 8282, 8397, 8516, 8631, 8750, 8865, 8981, 9101, 9217]
    hit0 = 14
    data1 = [0, 1810, 1994, 2178, 2362, 2548, 2732, 2913, 3099, 3283, 3467, 3651, 3834, 4017, 4201, 4386, 4569, 4753, 4938, 5120, 5303, 5488, 5673, 5856, 6038, 6223, 6408, 6592, 6776, 6961, 7143, 7328, 7511, 7695, 7878, 8060, 8244, 8430, 8614, 8798, 8981, 9165, 9348, 9533, 9717, 9901, 10085, 10268, 10453, 10635, 10820, 11004, 11186, 11370, 11555, 11738, 11921, 12107, 12292, 12475, 12658, 12842, 13026, 13210, 13394, 13577, 13761, 13946, 14130, 14315, 14500]
    hit1 = 1
    感电data0 = [0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 15, 15, 15, 16, 16, 17, 17, 17, 18, 18, 19, 19, 19, 20, 20, 22, 22, 22, 23, 23, 25, 25, 25, 26, 26, 27, 27, 27, 28, 28, 29, 29, 30, 30, 30, 31, 31, 33, 33, 33, 34, 34, 36, 36, 36, 37, 37, 38, 38, 38]
    感电hit0 = 1
    data2 = [0, 689, 759, 828, 899, 968, 1039, 1107, 1178, 1248, 1319, 1388, 1459, 1528, 1598, 1667, 1738, 1807, 1877, 1946, 2016, 2085, 2156, 2225, 2297, 2367, 2437, 2505, 2575, 2646, 2716, 2786, 2855, 2925, 2995, 3065, 3135, 3204, 3274, 3344, 3415, 3485, 3555, 3625, 3692, 3764, 3834, 3904, 3974, 4044, 4111, 4183, 4255, 4324, 4395, 4462, 4535, 4603, 4674, 4742, 4810, 4880, 4950, 5021, 5090, 5161, 5228, 5302, 5373, 5441, 5511]
    hit2 = 0
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    形态 = ["装置", "骑乘"]

    def 形态变更(self, 形态, char):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "装置":
            self.hit0 = 14
            self.hit1 = 1
            self.hit2 = 1
        if 形态 == "骑乘":
            self.hit0 = 22
            self.hit1 = 1
            self.hit2 = 1

    def 装备护石(self, char):
        self.倍率 *= 1.36


class 技能11(主动技能):
    # 大成功
    名称 = "反重力装置"
    所在等级 = 40
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 20
    MP = [160, 1344]
    无色消耗 = 1
    data0 = [0, 17680, 19473, 21266, 23060, 24853, 26645, 28437, 30233, 32026, 33821, 35613, 37406, 39200, 40993, 42787, 44582, 46374, 48167, 49961, 51754, 53547, 55340, 57135, 58928, 60723, 62514, 64308, 66101, 67894, 69690, 71483, 73277, 75068, 76863, 78655, 80450, 82242, 84037, 85831, 87621, 89416, 91210, 93004, 94797, 96594, 98388, 100180, 101973, 103766, 105557, 107353, 109144, 110941, 112733, 114526, 116321, 118114, 119907, 121702, 123496, 125287, 127082, 128874, 130668, 132461, 134256, 136050, 137842, 139635, 141428]
    hit0 = 1
    data1 = [0, 2450, 2708, 2959, 3215, 3466, 3718, 3974, 4223, 4481, 4732, 4985, 5237, 5495, 5749, 5997, 6256, 6507, 6762, 7020, 7265, 7521, 7773, 8031, 8285, 8535, 8790, 9042, 9296, 9546, 9803, 10060, 10310, 10568, 10817, 11071, 11326, 11579, 11833, 12082, 12341, 12591, 12844, 13100, 13352, 13607, 13859, 14115, 14372, 14619, 14872, 15127, 15380, 15638, 15890, 16140, 16393, 16649, 16900, 17154, 17412, 17666, 17918, 18171, 18419, 18678, 18931, 19186, 19436, 19692, 19941]
    hit1 = 0
    data2 = [0, 8839, 9734, 10632, 11527, 12425, 13320, 14219, 15115, 16012, 16909, 17809, 18703, 19600, 20496, 21392, 22289, 23186, 24086, 24979, 25875, 26772, 27671, 28565, 29464, 30359, 31258, 32152, 33051, 33949, 34844, 35742, 36638, 37535, 38429, 39328, 40224, 41122, 42018, 42915, 43813, 44711, 45606, 46503, 47399, 48295, 49193, 50089, 50984, 51881, 52778, 53675, 54574, 55469, 56367, 57264, 58159, 59058, 59954, 60852, 61747, 62643, 63539, 64438, 65333, 66231, 67128, 68023, 68920, 69818, 70715]
    hit2 = 0
    data3 = [0, 13256, 14605, 15950, 17294, 18640, 19985, 21329, 22674, 24017, 25362, 26708, 28053, 29401, 30745, 32088, 33437, 34780, 36126, 37470, 38815, 40161, 41505, 42855, 44195, 45540, 46887, 48231, 49577, 50922, 52266, 53611, 54957, 56301, 57648, 58994, 60339, 61682, 63027, 64374, 65718, 67062, 68408, 69751, 71097, 72444, 73789, 75135, 76479, 77825, 79168, 80515, 81859, 83205, 84551, 85892, 87239, 88585, 89928, 91276, 92620, 93963, 95311, 96655, 98002, 99346, 100691, 102037, 103381, 104729, 106071]
    hit3 = 0
    TP成长 = 0.1
    TP上限 = 5

    形态 = ["非浮", "浮空"]

    def 形态变更(self, 形态, char):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "非浮":
            self.hit0 = 1
            self.hit1 = 0
        if 形态 == "浮空":
            self.hit0 = 1
            self.hit1 = 1


class 技能12(主动技能):
    名称 = "暴炎加热炉"
    所在等级 = 40
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 25
    MP = [180, 1512]
    无色消耗 = 1
    data0 = [0, 572, 629, 692, 745, 807, 863, 920, 987, 1041, 1098, 1161, 1220, 1282, 1336, 1396, 1459, 1512, 1573, 1634, 1688, 1753, 1810, 1867, 1930, 1986, 2044, 2107, 2165, 2226, 2282, 2339, 2399, 2458, 2522, 2580, 2636, 2694, 2754, 2813, 2873, 2931, 2991, 3046, 3107, 3169, 3227, 3282, 3345, 3403, 3463, 3524, 3578, 3638, 3699, 3758, 3816, 3872, 3937, 3993, 4053, 4113, 4172, 4228, 4289, 4350, 4406, 4463, 4524, 4584, 4641]
    hit0 = 0
    data1 = [0, 2410, 2655, 2908, 3157, 3412, 3657, 3898, 4159, 4402, 4644, 4903, 5147, 5408, 5650, 5891, 6150, 6395, 6639, 6895, 7142, 7398, 7642, 7884, 8146, 8389, 8632, 8888, 9132, 9395, 9632, 9879, 10137, 10381, 10638, 10881, 11127, 11383, 11627, 11873, 12126, 12376, 12629, 12875, 13122, 13378, 13620, 13863, 14125, 14367, 14624, 14869, 15113, 15368, 15611, 15856, 16117, 16356, 16616, 16862, 17104, 17366, 17605, 17866, 18111, 18348, 18612, 18853, 19097, 19355, 19598]
    hit1 = 0
    data2 = [0, 1323, 1456, 1593, 1728, 1861, 1996, 2132, 2265, 2400, 2536, 2669, 2801, 2936, 3072, 3204, 3340, 3474, 3612, 3743, 3879, 4012, 4145, 4281, 4416, 4552, 4683, 4820, 4955, 5087, 5223, 5359, 5490, 5623, 5761, 5895, 6026, 6162, 6295, 6433, 6566, 6700, 6834, 6970, 7105, 7239, 7375, 7507, 7642, 7777, 7913, 8046, 8180, 8312, 8447, 8582, 8716, 8852, 8983, 9120, 9256, 9390, 9522, 9658, 9792, 9927, 10060, 10196, 10332, 10463, 10601]
    hit2 = 13
    data3 = [0, 424, 467, 511, 553, 598, 641, 683, 731, 770, 819, 861, 903, 949, 990, 1034, 1079, 1120, 1163, 1209, 1253, 1300, 1341, 1385, 1431, 1474, 1512, 1560, 1603, 1645, 1688, 1731, 1779, 1821, 1864, 1909, 1952, 2001, 2040, 2083, 2129, 2171, 2216, 2260, 2302, 2345, 2389, 2431, 2481, 2522, 2567, 2607, 2651, 2694, 2742, 2782, 2827, 2872, 2913, 2959, 3006, 3045, 3093, 3134, 3179, 3221, 3266, 3305, 3349, 3396, 3437]
    hit3 = 0
    data4 = [0, 1606, 1768, 1941, 2101, 2276, 2439, 2600, 2772, 2935, 3097, 3271, 3429, 3606, 3764, 3928, 4100, 4265, 4424, 4600, 4758, 4932, 5093, 5257, 5428, 5594, 5754, 5924, 6087, 6261, 6424, 6587, 6758, 6919, 7094, 7255, 7417, 7587, 7748, 7913, 8087, 8246, 8421, 8584, 8745, 8916, 9081, 9245, 9412, 9580, 9750, 9912, 10073, 10250, 10410, 10573, 10744, 10909, 11077, 11238, 11402, 11577, 11737, 11909, 12073, 12234, 12405, 12569, 12732, 12903, 13067]
    hit4 = 0
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    形态 = ["失败", "成功"]

    def 形态变更(self, 形态, char):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        self.power2 = 1
        if 形态 == "失败":
            self.hit0 = 0
            self.hit1 = 0
            self.hit2 = 13
            if '暴炎加热炉' in char.护石栏:
                self.power0 = self.power1 = self.power2 = 1.14*1.19
            self.power2 *= char.get_skill_by_name("魔道学助手").失败倍率()/char.get_skill_by_name("贤者之石").加成倍率('')
        else:
            形态 == "成功"
            self.hit0 = 4*11
            self.hit1 = 1
            self.hit2 = 0
            if '暴炎加热炉' in char.护石栏:
                self.power0 = self.power1 = self.power2 = 1.31

    def 装备护石(self, char):
        pass


class 技能13(主动技能):
    名称 = "冰霜钻孔车"
    所在等级 = 45
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 45
    MP = [360, 3024]
    无色消耗 = 2
    data0 = [0, 968, 1067, 1166, 1268, 1372, 1462, 1564, 1669, 1763, 1871, 1969, 2072, 2166, 2266, 2370, 2467, 2568, 2670, 2766, 2860, 2967, 3064, 3163, 3273, 3360, 3461, 3565, 3657, 3765, 3866, 3973, 4063, 4167, 4268, 4363, 4466, 4564, 4664, 4764, 4862, 4964, 5063, 5170, 5257, 5369, 5466, 5557, 5669, 5764, 5870, 5965, 6065, 6165, 6265, 6363, 6459, 6564, 6658, 6761, 6861, 6957, 7067, 7167, 7264, 7361, 7464, 7562, 7663, 7764, 7858]
    持续时间 = 5.5
    攻击间隔 = 0.115  # 测试计算结果
    hit0 = 0
    data1 = [0, 1936, 2135, 2330, 2529, 2740, 2928, 3129, 3337, 3524, 3735, 3933, 4143, 4328, 4531, 4741, 4925, 5135, 5334, 5522, 5731, 5931, 6129, 6328, 6536, 6725, 6918, 7133, 7320, 7532, 7734, 7938, 8126, 8319, 8530, 8722, 8932, 9131, 9328, 9525, 9727, 9924, 10123, 10333, 10516, 10734, 10928, 11117, 11323, 11525, 11735, 11918, 12116, 12330, 12531, 12729, 12927, 13124, 13325, 13524, 13721, 13919, 14128, 14329, 14526, 14729, 14923, 15121, 15321, 15517, 15715]
    hit1 = 0
    data2 = [0, 1207, 1330, 1452, 1576, 1699, 1822, 1943, 2065, 2190, 2312, 2434, 2557, 2680, 2804, 2926, 3049, 3171, 3293, 3417, 3540, 3662, 3785, 3908, 4028, 4152, 4275, 4398, 4520, 4642, 4767, 4890, 5011, 5133, 5256, 5379, 5501, 5624, 5747, 5870, 5990, 6115, 6238, 6360, 6482, 6606, 6730, 6852, 6973, 7095, 7218, 7341, 7465, 7587, 7709, 7832, 7956, 8079, 8200, 8323, 8447, 8569, 8692, 8815, 8938, 9058, 9182, 9305, 9429, 9549, 9672]
    hit2 = 9
    data3 = [0, 10880, 11986, 13089, 14195, 15297, 16402, 17506, 18612, 19714, 20817, 21922, 23027, 24130, 25234, 26340, 27439, 28545, 29650, 30755, 31858, 32962, 34066, 35171, 36275, 37377, 38484, 39587, 40689, 41794, 42900, 44004, 45107, 46211, 47314, 48418, 49522, 50627, 51731, 52834, 53939, 55044, 56149, 57252, 58354, 59459, 60565, 61666, 62772, 63878, 64978, 66082, 67188, 68292, 69395, 70499, 71603, 72709, 73811, 74916, 76022, 77123, 78226, 79332, 80437, 81539, 82643, 83748, 84852, 85954, 87060]
    hit3 = 1
    data4 = [0, 727, 800, 875, 950, 1029, 1097, 1172, 1252, 1321, 1404, 1476, 1555, 1624, 1699, 1774, 1850, 1925, 2003, 2075, 2145, 2226, 2296, 2374, 2454, 2520, 2596, 2676, 2746, 2824, 2902, 2979, 3047, 3124, 3199, 3273, 3348, 3424, 3499, 3574, 3647, 3724, 3796, 3877, 3945, 4025, 4101, 4168, 4251, 4322, 4403, 4472, 4548, 4623, 4703, 4772, 4845, 4925, 4994, 5072, 5145, 5216, 5303, 5372, 5446, 5522, 5599, 5672, 5746, 5823, 5896]
    hit4 = 0
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    形态 = ["失败", "成功"]

    def 形态变更(self, 形态, char):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        self.power0 = self.power1 = self.power2 = self.power3 = 1.0
        self.持续时间 = 5.5
        if 形态 == "失败":
            self.hit0 = 0
            self.hit1 = 0
            self.hit2 = 9
            self.hit3 = 1
            if '冰霜钻孔车' in char.护石栏:
                self.power0 = self.power1 = self.power2 = self.power3 = 1.32
            self.power0 = 0
            self.power2 *= char.get_skill_by_name("魔道学助手").失败倍率()
            self.power3 *= char.get_skill_by_name("魔道学助手").失败倍率()
        else:
            if 形态 == "成功":
                self.hit1 = 3
                self.hit2 = 0
                self.hit3 = 0
                if '冰霜钻孔车' in char.护石栏:
                    self.持续时间 = 6.0
                    self.power0 = self.power1 = self.power2 = self.power3 = 1.25
                self.hit0 = ceil(self.持续时间/(self.攻击间隔*(1-char.get_skill_by_name("贤者之石").攻击间隔减少率())))  # 贤者之石减攻击间隔在特殊计算部分


    def 装备护石(self, char):
        pass


class 技能14(被动技能):
    名称 = '成功预感'
    所在等级 = 48
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        elif self.等级 <= 16:
            return 1 + round(6 + 0.7 * self.等级, 1) / 100
        else:
            return 1 + round(16 + 1.5 * (self.等级 - 16), 1) / 100


class 技能15(主动技能):
    名称 = "技艺融合"
    所在等级 = 50
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 145
    MP = [1000, 8400]
    无色消耗 = 5
    data0 = [0, 2497, 3078, 3658, 4239, 4817, 5399, 5978, 6559, 7138, 7717, 8294, 8878, 9455, 10037, 10614, 11196, 11773, 12355, 12933, 13513, 14094, 14672, 15254, 15833, 16410, 16993, 17574, 18149, 18731, 19312, 19889, 20467, 21051, 21627, 22209, 22788, 23366, 23948, 24528, 25105, 25688, 26266, 26849, 27428, 28007, 28584, 29167, 29745, 30323, 30905]
    hit0 = 22
    data1 = [0, 67876, 83614, 99356, 115094, 130832, 146573, 162313, 178053, 193790, 209529, 225270, 241011, 256746, 272489, 288228, 303967, 319706, 335446, 351185, 366923, 382666, 398405, 414142, 429883, 445621, 461362, 477100, 492839, 508582, 524320, 540058, 555797, 571538, 587278, 603015, 618757, 634496, 650234, 665974, 681713, 697452, 713191, 728933, 744673, 760411, 776149, 791888, 807630, 823369, 839110]
    hit1 = 1


class 技能16(主动技能):
    名称 = "超级苍蝇拍"
    所在等级 = 60
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 30
    MP = [400, 1120]
    无色消耗 = 2
    data0 = [0, 36523, 40230, 43933, 47637, 51341, 55047, 58752, 62458, 66163, 69869, 73574, 77280, 80986, 84691, 88395, 92101, 95805, 99512, 103218, 106924, 110628, 114335, 118038, 121743, 125447, 129153, 132857, 136563, 140270, 143976, 147680, 151385, 155091, 158796, 162501, 166208, 169913, 173618, 177323, 181029, 184734, 188435, 192141, 195847, 199551, 203257, 206962, 210669, 214373, 218079]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 = 1.25
        self.CDR *= 0.9


class 技能17(主动技能):
    # 大成功
    名称 = "光电兔"
    所在等级 = 70
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 50
    MP = [800, 1680]
    无色消耗 = 2
    data0 = [0, 13943, 15359, 16774, 18187, 19601, 21015, 22432, 23844, 25259, 26675, 28089, 29504, 30919, 32334, 33750, 35164, 36576, 37991, 39406, 40822, 42237, 43649, 45063, 46480, 47894, 49310, 50724, 52138, 53554, 54969, 56382, 57796, 59211, 60626, 62042, 63454, 64869, 66285, 67700, 69114, 70525, 71945, 73358, 74774, 76185, 77600, 79015, 80430, 81844, 83258]
    hit0 = 4
    data1 = [0, 9080, 9999, 10920, 11842, 12765, 13685, 14607, 15527, 16449, 17369, 18292, 19213, 20131, 21053, 21974, 22896, 23817, 24739, 25659, 26582, 27501, 28421, 29346, 30267, 31186, 32109, 33030, 33950, 34873, 35793, 36713, 37633, 38554, 39476, 40397, 41318, 42238, 43162, 44083, 45004, 45925, 46846, 47767, 48689, 49610, 50532, 51452, 52371, 53293, 54214]
    hit1 = 1
    感电data0 = [0, 37, 40, 44, 47, 53, 56, 60, 63, 67, 71, 74, 79, 82, 87, 90, 94, 98, 101, 105, 109, 112, 116, 121, 125, 128, 132, 136, 139, 143, 146, 151, 155, 159, 162, 166, 170, 173, 178, 181, 184, 189, 193, 197, 200, 204, 208, 211, 215, 218, 223]
    感电hit0 = 4
    data2 = [0, 7156, 7887, 8612, 9339, 10065, 10791, 11520, 12243, 12971, 13697, 14423, 15149, 15876, 16602, 17327, 18056, 18781, 19507, 20236, 20962, 21687, 22414, 23142, 23865, 24594, 25319, 26046, 26772, 27497, 28227, 28950, 29678, 30405, 31130, 31856, 32585, 33310, 34035, 34763, 35488, 36214, 36943, 37666, 38394, 39120, 39849, 40574, 41299, 42027, 42753]
    hit2 = 0
    data3 = [0, 8158, 8989, 9817, 10642, 11472, 12301, 13128, 13955, 14784, 15611, 16438, 17267, 18095, 18921, 19749, 20577, 21406, 22230, 23062, 23890, 24717, 25545, 26373, 27201, 28029, 28857, 29687, 30512, 31338, 32170, 32998, 33826, 34650, 35482, 36309, 37136, 37965, 38792, 39619, 40448, 41275, 42104, 42928, 43760, 44588, 45415, 46243, 47071, 47899, 48725]
    hit3 = 0
    data4 = [0, 10742, 11827, 12920, 14007, 15098, 16187, 17276, 18366, 19458, 20549, 21635, 22724, 23814, 24902, 25994, 27085, 28173, 29263, 30352, 31442, 32529, 33622, 34710, 35802, 36890, 37978, 39070, 40157, 41248, 42337, 43428, 44515, 45605, 46696, 47785, 48876, 49966, 51055, 52144, 53235, 54323, 55412, 56502, 57593, 58683, 59772, 60859, 61951, 63037, 64129]
    hit4 = 0
    data5 = [0, 8158, 8989, 9817, 10642, 11472, 12301, 13128, 13955, 14784, 15611, 16438, 17267, 18095, 18921, 19749, 20577, 21406, 22230, 23062, 23890, 24717, 25545, 26373, 27201, 28029, 28857, 29687, 30512, 31338, 32170, 32998, 33826, 34650, 35482, 36309, 37136, 37965, 38792, 39619, 40448, 41275, 42104, 42928, 43760, 44588, 45415, 46243, 47071, 47899, 48725]
    hit5 = 0
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 = 1.23


class 技能18(主动技能):
    名称 = "雪人刨冰"
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 40
    MP = [360, 3024]
    无色消耗 = 3
    data0 = [0, 3138, 3456, 3774, 4092, 4411, 4731, 5049, 5367, 5683, 6004, 6323, 6640, 6958, 7279, 7595, 7917, 8233, 8555, 8868, 9190, 9510, 9824, 10150, 10465, 10783, 11104, 11421, 11740, 12058, 12376, 12695, 13013, 13333, 13650, 13970, 14286, 14604, 14925, 15243, 15560, 15879, 16198, 16517, 16834, 17153, 17471, 17790, 18108, 18427, 18747]
    hit0 = 18
    data1 = [0, 1934, 2131, 2330, 2524, 2722, 2914, 3110, 3313, 3509, 3704, 3898, 4095, 4291, 4490, 4685, 4883, 5076, 5273, 5469, 5669, 5864, 6060, 6255, 6451, 6649, 6845, 7043, 7239, 7437, 7633, 7830, 8026, 8220, 8418, 8613, 8810, 9006, 9204, 9401, 9597, 9791, 9988, 10183, 10382, 10579, 10774, 10969, 11165, 11362, 11558]
    hit1 = 13
    data2 = [0, 26625, 29322, 32024, 34725, 37425, 40127, 42828, 45528, 48229, 50930, 53631, 56330, 59030, 61733, 64430, 67136, 69836, 72539, 75238, 77937, 80643, 83340, 86042, 88746, 91442, 94143, 96846, 99546, 102247, 104947, 107647, 110348, 113048, 115753, 118450, 121152, 123854, 126553, 129254, 131957, 134656, 137360, 140058, 142758, 145463, 148164, 150862, 153564, 156263, 158966]
    hit2 = 1

    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 = 1.3


class 技能19(被动技能):
    名称 = '贤者之石'
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40
    关联技能 = ['魔道酸雨云', '电鳗碰撞机', '反重力装置', '熔岩药瓶', '暴炎加热炉']

    data0 = [0, 12.3, 14.7, 17.1, 19.4, 20.6, 21.9, 23.1, 24.2, 25.4, 26.5, 27.5, 28.6, 29.6, 30.6, 31.5, 32.4, 33.3, 34.2, 35.1, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36]

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.22 + 0.02 * self.等级, 5)

    def 攻击间隔减少率(self):
        if self.等级 == 0:
            return 1.0
        else:
            return round(self.data0[self.等级]/100, 5)


class 技能20(被动技能):
    名称 = '魔道学助手'
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40
    关联技能 = ['变异苍蝇拍', '超级苍蝇拍', '改良舒露露', '改良魔法星弹', '暗影斗篷', '技艺融合',
            '超级棒棒糖', '光电兔', '雪人刨冰', '乌洛波洛斯之环', '糖果大作战精怪乐园', '糖果大作战捣蛋杰克']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.17 + 0.02 * self.等级, 5)

    def 失败倍率(self):  # 有0.50是苦涩棒棒糖的；这里一起算入了
        if self.等级 == 0:
            return 1.0
        else:
            return round(1+0.50+0.38 + 0.02 * self.等级, 5)


class 技能21(主动技能):
    # 普通怪物110，其他101
    名称 = "超级棒棒糖"
    所在等级 = 80
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 45
    MP = [800, 6000]
    无色消耗 = 5
    data0 = [0, 76755, 84540, 92329, 100112, 107900, 115686, 123476, 131262, 139051, 146834, 154622, 162409, 170195, 177982, 185769, 193553, 201347, 209128, 216918, 224703, 232491, 240276, 248065, 255850, 263637, 271425, 279210, 286996, 294784, 302568, 310358, 318144, 325933, 333720, 341507, 349290, 357077, 364864, 372652, 380440, 388228, 396010, 403798, 411583, 419374, 427159, 434946, 442733, 450519, 458308]
    hit0 = 1
    data1 = [0, 20895, 23016, 25134, 27256, 29380, 31500, 33622, 35738, 37863, 39984, 42100, 44222, 46340, 48466, 50582, 52704, 54827, 56943, 59065, 61189, 63307, 65426, 67544, 69671, 71786, 73907, 76029, 78147, 80274, 82391, 84514, 86628, 88751, 90875, 92992, 95114, 97232, 99356, 101477, 103597, 105718, 107836, 109954, 112081, 114200, 116315, 118442, 120559, 122686, 124801]
    hit1 = 0
    data2 = [0, 49073, 54052, 59030, 64008, 68986, 73967, 78944, 83920, 88899, 93878, 98855, 103835, 108810, 113791, 118766, 123747, 128725, 133703, 138687, 143662, 148642, 153621, 158600, 163574, 168557, 173532, 178511, 183489, 188468, 193443, 198424, 203401, 208383, 213357, 218338, 223315, 228294, 233275, 238252, 243233, 248208, 253189, 258167, 263145, 268123, 273104, 278080, 283060, 288037, 293016]
    hit2 = 1
    感电data0 = [0, 100, 109, 120, 129, 140, 151, 161, 170, 180, 190, 200, 211, 221, 231, 242, 251, 262, 272, 281, 292, 302, 312, 322, 333, 342, 353, 363, 373, 383, 393, 403, 413, 424, 433, 445, 456, 465, 475, 484, 495, 505, 516, 525, 536, 547, 556, 567, 577, 586, 596]
    感电hit0 = 0

    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 *= 1.32
        self.CDR *= 0.9


class 技能22(主动技能):
    名称 = "乌洛波洛斯之环"
    所在等级 = 85
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 180
    MP = [2500, 8000]
    无色消耗 = 10
    data0 = [0, 4304, 5303, 6301, 7300, 8299, 9296, 10298, 11296, 12293, 13292, 14292, 15289, 16288, 17284, 18285, 19281, 20279, 21281, 22277, 23277, 24275, 25273, 26272, 27270, 28269, 29268, 30266, 31264, 32265, 33262, 34260, 35258, 36258, 37256, 38252, 39253, 40251, 41249, 42246, 43248, 44246, 45244, 46241, 47242, 48238, 49237, 50235, 51233, 52233, 53229]
    hit0 = 21
    data1 = [0, 3500, 4311, 5121, 5936, 6744, 7554, 8368, 9178, 9990, 10803, 11612, 12422, 13236, 14049, 14859, 15670, 16484, 17295, 18103, 18918, 19729, 20538, 21350, 22164, 22975, 23786, 24597, 25410, 26219, 27030, 27843, 28652, 29464, 30279, 31090, 31901, 32712, 33524, 34335, 35146, 35957, 36772, 37580, 38389, 39202, 40016, 40827, 41639, 42451, 43262]
    hit1 = 20
    data2 = [0, 109041, 134329, 159614, 184902, 210186, 235469, 260754, 286041, 311327, 336613, 361898, 387183, 412470, 437756, 463042, 488327, 513614, 538897, 564184, 589468, 614756, 640038, 665324, 690610, 715896, 741182, 766468, 791754, 817038, 842322, 867609, 892892, 918180, 943465, 968751, 994035, 1019323, 1044607, 1069895, 1095179, 1120465, 1145750, 1171035, 1196320, 1221606, 1246892, 1272178, 1297463, 1322748, 1348034]
    hit2 = 1


class 技能23(主动技能):
    名称 = "糖果大作战捣蛋杰克"
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 60
    MP = [773, 6000]
    无色消耗 = 7
    data0 = [0, 8135, 8961, 9786, 10610, 11437, 12260, 13087, 13913, 14739, 15563, 16389, 17213, 18038, 18863, 19690, 20516, 21341, 22167, 22992, 23817, 24641, 25468, 26292, 27118, 27943, 28770, 29594, 30421, 31246, 32070, 32895, 33721, 34546, 35371, 36197, 37024, 37846, 38673, 39500, 40324, 41150, 41975, 42801, 43625, 44451, 45276, 46104, 46927, 47753, 48578]
    hit0 = 25


class 技能24(被动技能):
    名称 = '粉红糖果'
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能25(主动技能):
    名称 = "糖果大作战精怪乐园"
    所在等级 = 100
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 290
    MP = [4028, 8056]
    无色消耗 = 15
    data0 = [0, 18653, 22979, 27305, 31632, 35957, 40281, 44608, 48933, 53260, 57585, 61911, 66236, 70562, 74888, 79212, 83539, 87865, 92191, 96515, 100840, 105167, 109491, 113818, 118144, 122469, 126794, 131120, 135447, 139773, 144097, 148423, 152749, 157076, 161399, 165726, 170052, 174379, 178702, 183027, 187355, 191679, 196007, 200331, 204655, 208982, 213308, 217634, 221958, 226285, 230611]
    hit0 = 8
    data1 = [0, 111927, 137878, 163834, 189787, 215742, 241694, 267649, 293602, 319558, 345509, 371465, 397419, 423372, 449327, 475280, 501236, 527188, 553142, 579095, 605051, 631002, 656958, 682911, 708866, 734820, 760773, 786729, 812681, 838636, 864588, 890544, 916496, 942451, 968404, 994359, 1020310, 1046266, 1072220, 1098175, 1124128, 1150081, 1176037, 1201989, 1227945, 1253897, 1279852, 1305805, 1331760, 1357712, 1383668]
    hit1 = 1
    data2 = [0, 121254, 149370, 177486, 205602, 233721, 261838, 289953, 318070, 346187, 374303, 402420, 430536, 458653, 486771, 514887, 543004, 571121, 599238, 627353, 655470, 683587, 711704, 739819, 767938, 796055, 824171, 852287, 880405, 908522, 936639, 964753, 992872, 1020989, 1049104, 1077221, 1105340, 1133456, 1161572, 1189689, 1217805, 1245923, 1274038, 1302154, 1330272, 1358389, 1386506, 1414623, 1442739, 1470857, 1498974]
    hit2 = 4


class 技能26(被动技能):
    名称 = '幸运棒棒糖'
    所在等级 = 25
    等级上限 = 15
    基础等级 = 5

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.07 + 0.01 * self.等级, 5)


class classChange(Character):
    def __init__(self, equVersion=""):
        self.实际名称 = 'witch'
        self.名称 = '知源·魔道学者'
        self.角色 = '魔法师(女)'
        self.角色类型 = '输出'
        self.职业 = '魔道学者'
        self.武器选项 = ['魔杖', '法杖', '棍棒', '矛', '扫把']
        self.输出类型选项 = ['魔法固伤']
        self.防具精通属性 = ['智力']
        self.类型 = '魔法固伤'
        self.武器类型 = '扫把'
        self.防具类型 = '皮甲'
        技能列表 = []
        技能序号 = {}
        i = 0
        while i >= 0:
            try:
                tem = eval('技能'+str(i)+'()')
                tem.基础等级计算()
                技能序号[tem.名称] = i
                技能列表.append(tem)
                i += 1
            except:
                i = -1
        self.技能栏 = 技能列表
        self.技能序号 = 技能序号
        self.buff = 1.92

        super().__init__(equVersion)

    def 职业特殊计算(self):
        魔道学助手 = self.get_skill_by_name('魔道学助手')
        贤者之石 = self.get_skill_by_name('贤者之石')
        # 冰霜钻孔车 = self.get_skill_by_name('冰霜钻孔车')
        魔道学助手.等级 = 贤者之石.等级
        # 冰霜钻孔车.hit0 = ceil(冰霜钻孔车.持续时间/(冰霜钻孔车.攻击间隔*(1-贤者之石.攻击间隔减少率())))

    def 火属性强化(self) -> float:
        max_num = max([super().火属性强化(),super().冰属性强化(),super().光属性强化(),super().暗属性强化()])
        if max_num == super().火属性强化():
            return max_num
        else:
            return int(0.9*max_num)

    def 冰属性强化(self) -> float:
        max_num = max([super().火属性强化(),super().冰属性强化(),super().光属性强化(),super().暗属性强化()])
        if max_num == super().冰属性强化():
            return max_num
        else:
            return int(0.9*max_num)

    def 光属性强化(self) -> float:
        max_num = max([super().火属性强化(),super().冰属性强化(),super().光属性强化(),super().暗属性强化()])
        if max_num == super().光属性强化():
            return max_num
        else:
            return int(0.9*max_num)

    def 暗属性强化(self) -> float:
        max_num = max([super().火属性强化(),super().冰属性强化(),super().光属性强化(),super().暗属性强化()])
        if max_num == super().暗属性强化():
            return max_num
        else:
            return int(0.9*max_num)